package cn.fl.inscare.service;

import cmm.mid.core.framework.page.KeyValueVO;
import cmm.mid.core.framework.page.Pager;
import cn.cmm.base.framework.exception.BaseException;
import cn.fl.inscare.vo.AddAplicationVo;
import cn.fl.inscare.vo.InsApplicationVO;
import cn.fl.inscare.vo.QuotationVO;
import ins.car.facade.car.car.condition.InsCompInfoQC;
import ins.car.facade.car.car.dto.InsApplicationDTO;
import ins.car.facade.car.prj.dto.InsPrjApplRDTO;

import java.util.List;
import java.util.Map;

/**
 * Created by qxl on
 * 2018/9/11
 */
public interface IInsApplicationStagingService {

    //通过项目id来获取 保险公司信息数据
    List<InsApplicationVO> getInsQuoteInfoList(Long prjId,String paySchNo) throws BaseException;

    /**
     *   通过申请id 和 客户id  来获取数据
     * @param applicationId 申请表id
     * @param cstNm 客户Nm
     * @return
     * @throws BaseException
     */
    InsApplicationVO getApplicationId(Long applicationId, String cstNm) throws BaseException;

    /**
     * 通过申请id获取报价信息
     * @param applicationId
     * @return
     * @throws BaseException
     */
    QuotationVO getApplicationId(Long applicationId) throws BaseException;


    //获取图片信息
    Map<String, Object> getInsPolilyFile(Long id);
    Map<String,Object> getApplicationR(Long prjPrdDtlId)throws BaseException;
	/**
	 * 保存申请信息
	 * @param addvo
	 * @return
	 */
	String getInsApplication(AddAplicationVo addvo)throws BaseException;
	/**
	 * 修改申请单
	 * @param addvo
	 * @param valueOf
	 * @return
	 */
	String modifyApplication(AddAplicationVo addvo, Long valueOf)throws BaseException;
	/**
	 * 查询申请单信息
	 * @param valueOf
	 * @return
	 */
	Pager  getInsApplication(Pager page,Long valueOf)throws BaseException;
	/**
	 * 删除数据
	 * @param applyId
	 * @return
	 */
	boolean deleteApplication(Long applyId)throws BaseException;
	/**
	 * 校验项目信息
	 * @param valueOf
	 * @return
	 */
	Long checkProjectInformation(Long valueOf,Long type)throws BaseException;
	/**
	 * 获取id
	 * @return
	 */
	Long searchApplicationId()throws BaseException;
	/**
	 * 校验是否做过分期
	 * @param prjPrdDtlId
	 * @return
	 */
	boolean checkData(Long prjPrdDtlId)throws BaseException;
	/**
	 * 检验是否有合格证信息
	 * @param prjPrdDtlId
	 * @return
	 */
	boolean checkVehon(Long prjPrdDtlId)throws BaseException;
	/**
	 * 查询申请单信息
	 * @param applyId
	 * @return
	 */
	InsApplicationDTO searchAppIdById(Long applyId)throws BaseException;
	/**
	 * 查询申请单信息
	 * @param valueOf
	 * @return
	 */
	Map<String, Object> getApplication(Long applyId)throws BaseException;
	/**
	 * 根据申请单id查询关系表信息
	 * @param valueOf
	 * @return
	 * @throws BaseException
	 */
	InsPrjApplRDTO getPrjPplR(Long applyId)throws BaseException;

	/**
	 * 查询保险分期信息
	 * @param paySchId
	 * @return
	 */
	InsApplicationVO getInstallmentInformation(Long prjPrdDtlId, Long paySchId) throws BaseException;

	List<KeyValueVO> selectSubInsCompList(int i, InsCompInfoQC qc) throws BaseException;


	Map getCompCity(Long aLong) throws BaseException;
}
